„‘Jeder soll privat #gendern wie er will, aber ich möchte mich nicht im öffentlich-rechtlichen Rundfunk mit moralischem Zeigefinger belehren lassen, wie ich zu sprechen habe. Wer gibt gebührenfinanzierten Redakteuren das Recht, dafür Anpassungsdruck zu erzeugen?‘ (tm) #Merz #Lanz“ – so lautet ein Tweet von CDU-Politiker Friedrich Merz vom 07.05.2021.
Über das Gendern in der Sprache wird aktuell hitzig diskutiert. Anstelle des generischen Maskulinums werden dabei zur Gleichstellung der Geschlechter entweder alle tatsächlich gemeinten Geschlechter aktiv genannt oder geschlechtsneutrale Begriffe verwendet. Das Beispiel von Friedrich Merz zeigt, dass nicht jede:r mit dieser sprachlichen Anpassung einverstanden ist.
Auch in anderen Bereichen bleibt die fehlende Gleichstellung relevant: Laut Statistischem Bundesamt haben Frauen im Jahr 2020 durchschnittlich 18% weniger Bezahlung erhalten als Männer. ¹ Und der Anteil von Frauen in Aufsichtsräten von Unternehmen, die keiner festen Quotenregelung unterliegen, beträgt aktuell nur 19,9%. ²
Die genannten Beispiele zeigen die Aktualität des Themas, weshalb im Rahmen dieses Projekts unterschiedliche Datenanalysen und -visualisierungen durchgeführt wurden, welche sich alle um das Thema Gender in der Politik drehen.
Um zu untersuchen, wie sich die Frauenquote bei den Vertreter:innen der Gesellschaft darstellt, wurde zunächst eine Analyse der Geschlechterverteilung der Fraktionen im Bundestag und in den Landtagen durchgeführt. Außerdem wurde die Geschlechterverteilung der Landtage ohne Fraktionsbezug pro Bundesland untersucht, um einen Ländervergleich zu ermöglichen. Basis für diese Auswertung war der aktuelle DBoeS-Datensatz vom Hans-Bredow-Institut, Leibniz-Institut für Medienforschung über deutsche Politiker:innen. ³
Außerdem wurden Tweets von Politiker:innen zum Thema Gender als Grundlage für eine Sentiment-Analyse verwendet.
Dieser Twitter-Datensatz wurde abschließend eingesetzt, um eine Netzwerkanalyse durchzuführen: Dargestellt wird, welche Politiker*innen durch Retweets miteinander vernetzt sind und sich so aufeinander beziehen.
³ Link zum DBoeS-Datensatz: https://github.com/Leibniz-HBI/DBoeS-Automatization/blob/master/LICENSE
library(tidytext)
library(tidyverse)
library(quanteda)
library(lubridate)
library(ggplot2)
library(plotly)
library(forcats)
library(readxl)
library(leaflet)
library(leaflet.minicharts)
library(sp)
library(sf)
library(readr)
library(stringr)
library(rtweet)
library(ggraph)
library(ggrepel)
library(tidygraph)
Parlamentarier <- read_csv("Data/Parlamentarier.csv")
EU-Parlament rausfiltern
Parlamentarier <- Parlamentarier %>%
filter(Kategorie!="EU-Parlament")
Read Tabellen mit fehlenden Geschlechtern
alle_geschlechter <- read_excel("Data/Parlamentarier_geschlechter.xlsx", sheet = "Geschlechter")
Join fehlende Geschlechterangaben
Parlamentarier <- Parlamentarier %>%
left_join(alle_geschlechter, by = c("Name" = "Name"))
Rename Spalten
Parlamentarier <- Parlamentarier %>%
rename(Geschlecht = Geschlecht.y)
bundestag <- Parlamentarier %>%
select(id, Name, Geschlecht, Partei, Kategorie, SM_Twitter_id, SM_Twitter_user) %>%
filter(Kategorie=="Bundestag")
bundestag$Partei[bundestag$Partei == "CSU"] <-"CDU/CSU"
bundestag$Partei[bundestag$Partei=="CDU"]<-"CDU/CSU"
bundestag_man <- bundestag %>%
group_by(Partei) %>%
filter(Geschlecht == "männlich") %>%
summarise(gesamt_man=n())
bundestag_gesamt <- bundestag %>%
group_by(Partei) %>%
filter(Geschlecht == "weiblich") %>%
summarise(gesamt_frau=n()) %>%
left_join(bundestag_man) %>%
mutate(row_sum=rowSums(.[2:3])) %>%
arrange(desc(row_sum))
bundestag_gesamt <- bundestag_gesamt %>%
mutate(verhältnis_man = gesamt_man/row_sum*100,
verhältnis_frau = gesamt_frau/row_sum*100)
plot_ly(data=bundestag_gesamt, x=~reorder(Partei, -verhältnis_man), y=~verhältnis_frau, name="weiblich", marker=list(color=toRGB("#FB7F62")),
type="bar", hoverinfo="text", text = ~paste("Gesamtanzahl: ", row_sum,
"</br>Anzahl männlich: ", gesamt_man,
"</br>Anzahl weiblich: ", gesamt_frau
),
hovertemplate=paste("Anteil: %{y:,.0f}%",
"<br>%{text}")) %>%
add_trace(y=~verhältnis_man, name="männlich", marker=list(color=toRGB("#775285"))) %>%
layout(barmode="stack", title="Geschlechterverteilung nach Fraktionen im Bundestag",
xaxis = list(title = ""), yaxis=list(title="Anzahl Abgeordnete")) %>%
layout(legend=list(x=1, y=0.5))
landtag_partei <- Parlamentarier %>%
filter(Kategorie !="Bundestag") %>%
filter(Kategorie!="EU-Parlament") %>%
filter(Partei !="BIW") %>%
filter(Partei!="SSW") %>%
filter(Partei!="BVB/FW") %>%
filter(Partei!="FW")
landtag_partei$Partei[landtag_partei$Partei == "CSU"] <-"CDU/CSU"
landtag_partei$Partei[landtag_partei$Partei=="CDU"] <- "CDU/CSU"
landtag_partei$Partei[landtag_partei$Partei=="FDP/DVP"] <- "FDP"
landtag_man <- landtag_partei %>%
group_by(Partei) %>%
filter(Geschlecht=="männlich") %>%
summarise(gesamt_man=n())
landtag_gesamt <- landtag_partei %>%
group_by(Partei) %>%
filter(Geschlecht=="weiblich") %>%
summarise(gesamt_frau=n()) %>%
left_join(landtag_man) %>%
mutate(row_sum=rowSums(.[2:3])) %>%
arrange(desc(row_sum))
landtag_gesamt <- landtag_gesamt %>%
mutate(verhältnis_man = gesamt_man/row_sum*100,
verhältnis_frau = gesamt_frau/row_sum*100)
plot_ly(data=landtag_gesamt, x=~reorder(Partei, -verhältnis_man), y=~verhältnis_frau, name="weiblich", marker=list(color=toRGB("#FB7F62")),
type="bar", hoverinfo="text", text=~paste("Gesamtanzahl: ", row_sum,
"</br>Anzahl männlich: ", gesamt_man,
"</br>Anzahl weiblich: ", gesamt_frau
),
hovertemplate=paste("Anteil: %{y:,.0f}%",
"<br>%{text}")) %>%
add_trace(y=~verhältnis_man, name="männlich", marker=list(color=toRGB("#775285"))) %>%
layout(barmode="stack", title="Geschlechterverteilung nach Fraktionen in den Landtagen",
xaxis=list(title=""), yaxis=list(title="Anzahl Abgeordnete")) %>%
layout(legend=list(x=1, y=0.5))
Die beiden Balkendiagramme zeigen die aktuelle fraktionsbezogene Geschlechterverteilung in der deutschen Politik – einmal in Bezug auf den Bundestag und einmal hinsichtlich der Landtage. Im zweiten Fall wurden die Abgeordneten aller Landtage zusammengefasst, um so einen durchschnittlichen Gesamtüberblick zu ermöglichen.
Für eine bessere Vergleichbarkeit konzentrieren sich beide Darstellungen auf ihre gemeinsame Schnittmenge der Fraktionen. So wird beispielsweise die SSW nicht aufgeführt, da sie nur im Schleswig-Holsteinischen Landtag agiert.
Fraktionen, die in bestimmten Ländern andere Bezeichnungen haben, wurden zusammengefasst (CDU/CSU und FDP/DVP zu FDP).
Im verwendeten Datensatz lagen zwar Informationen zum Geschlecht vor, diese waren jedoch lückenhaft. Fehlende Geschlechtsangaben wurden manuell hinzugefügt, wobei vom üblichen Genus des Namens auf das Geschlecht geschlossen wurde.
Der lilafarbene Teil jedes Balkens zeigt den relativen Anteil der männlichen, der orangene Balken den relativen Anteil der weiblichen Abgeordneten an der Gesamtheit der Abgeordneten der Parteien in den entsprechenden Parlamenten. Hovert man über die Balken, wird der jeweils partei- und geschlechtsbezogene Anteil in Prozent angezeigt. Außerdem ist dort die Anzahl der männlichen und der weiblichen sowie die Gesamtanzahl der Abgeordneten der entsprechenden Partei zu sehen.
Es ist erkennbar, dass die AfD sowohl in den Landtagen als auch im Bundestag deutlich mehr männliche Abgeordnete stellt (89% in Landtagen, 90 % im Bundestag). Eine ähnlich auffällige Ungleichheit ist bei der FDP und CDU/CSU zu sehen.
Nahezu ausgeglichen ist dagegen die SPD im Bundestag, ebenso wie Die Linke in den Landtagen. Im Bundestag gibt es bei Die Linke sowie bei den Grünen mehr weibliche als männliche Abgeordnete (54% weiblich, 46 % männlich in beiden Fraktionen).
parlamentarier_landtag <- Parlamentarier %>%
filter(Kategorie %in% c("Abgeordnetenhaus von Berlin",
"Bayerischer Landtag",
"Bremische Bürgerschaft",
"Hamburgische Bürgerschaft",
"Hessischer Landtag",
"Landtag Brandenburg",
"Landtag des Saarlandes",
"Landtag Mecklenburg-Vorpommern",
"Landtag Nordrhein-Westfalen",
"Landtag Rheinland-Pfalz",
"Landtag Sachsen-Anhalt",
"Landtag von Baden-Württemberg",
"Niedersächsischer Landtag",
"Sächsischer Landtag",
"Schleswig-Holsteinischer Landtag",
"Thüringer Landtag"))
Kategorie <- c("Abgeordnetenhaus von Berlin",
"Bayerischer Landtag",
"Bremische Bürgerschaft",
"Hamburgische Bürgerschaft",
"Hessischer Landtag",
"Landtag Brandenburg",
"Landtag des Saarlandes",
"Landtag Mecklenburg-Vorpommern",
"Landtag Nordrhein-Westfalen",
"Landtag Rheinland-Pfalz",
"Landtag Sachsen-Anhalt",
"Landtag von Baden-Württemberg",
"Niedersächsischer Landtag",
"Sächsischer Landtag",
"Schleswig-Holsteinischer Landtag",
"Thüringer Landtag")
lat <- c(52.520008,
48.917431,
53.074982,
53.553815,
50.652052,
52.408418,
49.396423,
53.612651,
51.433237,
50.118346,
51.950265,
48.661604,
52.636704,
51.104541,
54.219367,
51.010989)
lng <- c(13.404954,
11.407980,
8.807080,
9.991575,
9.162438,
12.562492,
7.022961,
12.429595,
7.661594,
7.308953,
11.692274,
9.350134,
9.845077,
13.201738,
9.696117,
10.845346)
bundeslaender_koordinaten <- data.frame(Kategorie, lat, lng)
parlamentarier_man <- parlamentarier_landtag %>%
group_by(Kategorie) %>%
filter(Geschlecht == "männlich") %>%
summarise(männlich = n())
parlamentarier_landtag_gesamt <- parlamentarier_landtag %>%
group_by(Kategorie) %>%
filter(Geschlecht == "weiblich") %>%
summarise(weiblich = n()) %>%
left_join(parlamentarier_man)
parlamentarier_koordinaten <- parlamentarier_landtag_gesamt %>%
left_join(bundeslaender_koordinaten, by = c("Kategorie" = "Kategorie"))
colors <- c("#FB7F62", "#775285")
grenzen <- readRDS("Data/gadm36_DEU_1_sp.rds") %>%
st_as_sf()
popup_bundeslaender <- paste0("<strong>Bundesland: </strong>", grenzen$NAME_1)
map <- leaflet() %>%
addProviderTiles(providers$CartoDB.VoyagerLabelsUnder) %>%
setView(lng = 10.451526, lat = 51.165691, zoom = 5.5) %>%
addPolygons(data = grenzen,
fillColor = "grey",
fillOpacity = 0.1,
weight = 3,
color = "grey",
popup = popup_bundeslaender) %>%
addMinicharts(
parlamentarier_koordinaten$lng, parlamentarier_koordinaten$lat,
type = "pie",
chartdata = parlamentarier_koordinaten[, c("weiblich", "männlich")],
colorPalette = colors,
width = 46,
height = 46,
opacity = 0.8,
legendPosition = "bottomright"
)
sf layer has inconsistent datum (+proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs).
Need '+proj=longlat +datum=WGS84'
map
Die auf der Deutschlandkarte abgebildeten Torten-Diagramme veranschaulichen die Sitzverteilung der Abgeordneten in den deutschen Landesparlamenten aufgeschlüsselt nach der Geschlechterzugehörigkeit (männlichen Abgeordnete, weiblichen Abgeordnete).
Dabei wurde, um den Aspekt der landesspezifischen, aber deutschlandweiten Geschlechterrepräsentanz hervorzuheben, die Fraktionszugehörigkeit der Abgeordneten in der Darstellung nicht berücksichtigt.
Auf den ersten Blick ist das Verhältnis zwischen männlichen und weiblichen Abgeordneten deutlich erkennbar, jeweils in Lila und Orange gekennzeichnet. Für einen genaueren Einblick können mit einem Klick auf die Torten-Diagramme die absoluten Zahlen der Sitzverteilung zwischen männlichen und weiblichen Abgeordneten je Landtag eingesehen werden.
Es fällt auf, dass in allen Landesparlamenten mehr männliche Abgeordnete als weibliche Abgeordnete sitzen. Beinahe in jedem Landtag bewegt sich diese ungleiche Sitzverteilung zwischen einer Zweidrittel- bis zu einer Dreiviertel- Mehrheit an männlichen Abgeordneten.
Einzig die Hamburgische Bürgerschaft weist annähernd ein ausgeglichenes 1-zu-1-Verhältnis zwischen männlichen und weiblichen Abgeordneten auf, wenngleich auch hier die Anzahl der männlichen Abgeordneten leicht überwiegt. Am größten ist die Unausgeglichenheit in Sachsen-Anhalt mit 46 weiblichen Abgeordneten und 83 männlichen Abgeordneten.
Nicht als ausführbaren Code, damit die Daten nicht nochmals gezogen werden…
Twitter_accounts <- Parlamentarier %>% filter(Kategorie!=“EU-Parlament”) %>% filter(Partei!=“BIW”) %>% filter(Partei!=“SSW”) %>% filter(Partei!=“BVB/FW”) %>% filter(Partei!=“FW”) %>% filter(Partei!=“fraktionslos”) %>% filter(SM_Twitter_user != "")
token <- get_token() token
alle_tweets <- list() userIdList = list(Twitter_accounts\(SM_Twitter_user) rl <- rate_limit(token, "statuses/user_timeline") for(user in userIdList[[1]]){ alle_tweets[[user]] <- get_timeline(user, n = 2, check = F) print("rate limit remaining:", str(rl\)remaining)) print(“at user:”, str(user)) rl <- rl %>% mutate(remaining = remaining - 1) # if rate limit exhausted, then wait to rate limit reset if (rl\(remaining == 5L) { rl <- rate_limit(token, "statuses/user_timeline") print("rate limit exceeded, waiting for 900s at user", str(user)) Sys.sleep(as.numeric(rl\)reset, “secs”)) } }
Parlamentarier_senti <- Parlamentarier %>%
filter(Partei!="BIW") %>%
filter(Partei!="SSW") %>%
filter(Partei!="BVB/FW") %>%
filter(Partei!="FW") %>%
filter(Partei!="fraktionslos") %>%
filter(SM_Twitter_user != "") %>%
select(Name, Partei, SM_Twitter_user, Geschlecht) %>%
mutate(SM_Twitter_user=tolower(SM_Twitter_user))
Parlamentarier_senti$Partei[Parlamentarier_senti$Partei == "CSU"] <- "CDU/CSU"
Parlamentarier_senti$Partei[Parlamentarier_senti$Partei == "CDU"] <- "CDU/CSU"
Parlamentarier_senti$Partei[Parlamentarier_senti$Partei == "FDP/DVP"] <- "FDP"
load("Data/sentiWS.RData")
sentiws <- dictionary(list(positive=positive, negative=negative))
tweet_corpus <- corpus(filtert_tweets, text_field = "text")
token <- tokens(tweet_corpus)
dfm <- dfm(token)
senti <- dfm_lookup(dfm, sentiws)
senti <- dfm_group(senti, groups = screen_name)
senti_frame <- senti %>%
quanteda::convert(to= "data.frame") %>%
as_tibble() %>%
mutate(doc_id=tolower(doc_id)) %>%
rename(negativ = negative, positiv = positive)
senti_final_frame <- senti_frame %>%
full_join(Parlamentarier_senti, by=c("doc_id"="SM_Twitter_user")) %>%
group_by(Partei) %>%
summarise(across(c(negativ, positiv), ~round(sum(., na.rm = TRUE)/sum(negativ + positiv, na.rm = TRUE ), digits = 2)))
senti_bar <- senti_final_frame %>%
Es gab 26 Warnungen (Anzeige mit warnings())
mutate(Partei = fct_reorder(Partei, positiv, max)) %>%
pivot_longer(c(positiv, negativ), values_to = c("Verhältnis"), names_to = c("Äußerung")) %>%
ggplot() +
geom_bar(aes(Partei,
Verhältnis,
fill = Äußerung),
position = "stack",
stat = "identity") +
scale_fill_manual(values = c("#f46666", "#8EC9BB")) +
theme_minimal() +
labs(
title = "Äußerungen der Politiker*innen auf Twitter zum Thema 'Gender'",
subtitle = "Einschätzung durch Sentimentanalyse",
x = "",
y = "Verhältnis",
fill = ""
)
final_senti_plot <- ggplotly(senti_bar) %>%
layout(autosize = F, width = 650, height = 500, legend=list(x=1, y=0.5))
Specifying width/height in layout() is now deprecated.
Please specify in ggplotly() or plot_ly()
final_senti_plot
Ziel der Sentiment-Analyse ist es, das Stimmungsbild innerhalb der einzelnen Parteien zu dem Thema Gender zu erfassen. Als Grundlage für die hier visualisierte Sentiment-Analyse dienen Tweets, welche von Abgeordneten der Landtage und des Bundestages zum Thema Gender abgesetzt wurden. Dadurch ließ sich ermitteln, ob diese Tweets eher positiv oder eher negativ verfasst sind. In diesem Zusammenhang wurde ein Wörterbuch eingesetzt, welches negativ und positiv konnotierte Worte und Äußerungen inklusive Gewichtungen beinhaltet. Dieses wurde mit den Tweets abgeglichen. Das Ergebnis zeigt, wie hoch der Anteil negativer und positiver Äußerungen ist.
Um dies umzusetzen, wurden zunächst mithilfe des DBoeS-Datensatzes alle Abgeordneten ausgewählt, die überhaupt einen Twitter-Account besitzen.
Anschließend wurden von diesen Nutzer:innen jeweils die letzten 1.000 Tweets heruntergeladen. Diese wurden auf 47 Hashtags gefiltert, welche vorher festgelegt wurden, um das Thema Gender abzubilden (z.B. #gendersternchen, #gendergaga, #equalpayday etc.). ⁴ Es wurde darauf geachtet, dass sowohl positive als auch negative Hashtags einbezogen werden, um möglichst alle Meinungen für die Analyse einbeziehen zu können.
Die so gefilterten Tweets wurden dann zu einem Corpus zusammengefasst. Mit diesem Corpus wurde eine Sentiment-Analyse durchgeführt, wobei der Wortschatz „SentiWS“ ⁵ der Universität Leipzig als Grundlage diente. Anschließend wurde nach den einzelnen Parteien gruppiert und der passende Teil des Corpus (je nach Parteizugehörigkeit des/der tweetenden Abgeordneten) inklusive Analyseergebnis zugeordnet.
Die Analyse zeigt, dass die Abgeordneten von der AfD und von Die Linke gemeinsam den höchsten Anteil negativer Tweets verfasst haben, jeweils die Hälfte wurde als negativ ausgewertet. Es lässt sich ein vorsichtiger Trend erkennen: Sowohl die Parteien CDU und SPD, welche als Parteien der politischen Mitte gelten als auch die FDP berichten eher positiv über das Thema. Dabei hat die CDU das stärkste Positiv-Verhältnis von 0,73 (positiv) zu 0,27 (negativ).
Zu beachten ist, dass eine Sentiment-Analyse in der Regel nicht in der Lage ist, Ironie und Sarkasmus ebenso wenig wie doppelte Negationen als solche zu identifizieren, was zu Ungenauigkeiten im Ergebnis führen kann. Außerdem geht aus der Sentiment-Analyse nicht hervor, ob beispielsweise negativ über die Gleichbehandlung der Geschlechter geschrieben wird oder negativ darüber, dass es noch keine Gleichbehandlung gibt. Der genaue Inhalt des Tweets bleibt unbeachtet. Somit lässt sich hier nicht ablesen, ob die Abgeordneten der Parteien jeweils für Geschlechtergleichheit plädieren oder dagegen. Gerade am Ergebnis von AfD und Die Linke wird dies deutlich, da die Einstellungen bezüglich des Themas trotz gleichwertigem Ergebnis höchstwahrscheinlich verschieden ausfallen.
⁴ Liste aller gesuchten Hashtags: #genderpaygap, #genderequality, #womenempowerment, #feminism, #feminismus, #gendergaga, #gender, #sexismus, #GeenaOnGender, #gendering, #gendersprache, #genderequity, #gleichberechtigung, #frauenpower, #frauenrechte, #frauenbewegung, #everydaysexism, #fightsexism, #sexism, #nomeansno, #AintNoCinderella, #NiUnaMenos, #NiUnaMas, #MyStealthyFreedom, #equalpay, #femaleempowerment, #gendersternchen, #manspreading, #gendern, #menaretrash, #gendersprech, #genderverbot, #gendershit, #equalpayday, #womensday, #weltfrauentag, #internationalwomensday, #frauentag, #gendergerechtesprache, #genderpolizei, #femalehero, #genderschwachsinn, #geballterFeminismus, #geschlechterwahn, #geschlechterwahnsinn, #frauen, #männer
tweets_network <- filtert_tweets %>%
select(screen_name,
retweet_screen_name,
created_at)
parlamentarier_network <- Parlamentarier %>%
select(Name,
Partei,
SM_Twitter_user) %>%
drop_na(SM_Twitter_user) %>%
rename("screen_name" = "SM_Twitter_user")
network_data <- parlamentarier_network %>%
left_join(tweets_network, by = "screen_name")
hauefigkeit_tweets <- network_data %>%
count(screen_name)
network_data <- network_data %>%
left_join(hauefigkeit_tweets, by = "screen_name")
screen_suche <- parlamentarier_network$screen_name
filtered_retweeters <- network_data %>%
filter(retweet_screen_name %in% screen_suche)
netz <- filtered_retweeters %>%
filter(!is.na(retweet_screen_name)) %>%
select(from = screen_name, to = retweet_screen_name) %>%
as_tbl_graph
netz <- netz %>%
mutate(
degree = centrality_degree(mode = "in"),
component = group_components()
) %>%
left_join(network_data %>%
select(Name, screen_name, Partei, n) %>% distinct(screen_name, .keep_all = T),
by = c( "name" ="screen_name"))
partei_farben <- list(
"CDU" = "black",
"SPD" = "red",
"CSU" = "black",
"FDP" = "#e2b007",
"GRÜNE" = "#07C23F",
"LINKE" = "#de4c8a",
"AfD" = "blue"
)
Zuweisung von Attributen an Nodes:
netz_plot <- netz %>%
filter(component <= 10) %>%
ggraph(layout = "fr") +
geom_edge_link(edge_color = "black", alpha = 0.25, edge_width = 0.1, end_cap = circle(2.5, "mm"), arrow = arrow(length = unit(2.5, "mm"), ends = "last", type = "closed")) +
geom_node_point(aes(size = n, color = Partei)) +
scale_color_manual(values = partei_farben) +
scale_size(range = c(1, 8)) +
theme_graph(background = "white") +
geom_node_label(aes(filter = n >= 40, label = Name), repel = T, show.legend = F, alpha = 0.5) +
labs(title = "Retweet-Netzwerke deutscher Politiker:innen", size = "Anzahl Tweets", subtitle = "zum Thema Gender ab 2016")
netz_plot
Um die Aktivität einzelner Politiker:innen und ihre Vernetzung untereinander in Debatten, Diskussionen, Meinungsäußerungen und Stellungnahmen zum Thema Gender auf Twitter abzubilden, wurde sowohl die individuelle Anzahl der Tweets zum Thema als auch ihre gegenseitige Bezugnahme aufeinander in Form von Retweets untersucht. Diese Informationen wurden in einem Netzwerkdiagramm dargestellt.
Die so entstandenen Retweet-Netzwerke wurden ebenso wie die Sentiment-Analyse aus den letzten 1.000 Tweets derjenigen Abgeordneten, welche über einen Twitter-Account verfügen und sich in diesen letzten 1.000 Tweets mindestens einmal zum Thema Gender äußerten, generiert. Der älteste miteinbezogene Tweet zum Thema wurde im August 2016 abgesetzt. Dennoch deckt diese Netzwerkanalyse nicht die Twitter-Aktivität aller untersuchten Politiker:innen bis zurück zu diesem Zeitpunkt ab. Grund hierfür ist, dass einige Politiker:innen, gemessen an der Frequenz, in der sie Tweets absetzen, eine vergleichsweise hohe Aktivität auf Twitter aufweisen, weswegen ihre letzten 1.000 Tweets nicht bis in den August 2016 zurückreichen.
Die Punkte in der Grafik stellen einzelne Abgeordnete dar. Die Größe der jeweiligen Punkte veranschaulicht die Anzahl der von den Abgeordneten abgesetzten Tweets zum Thema Gender und gibt somit Aufschluss über eine eventuelle Schwerpunktsetzung der Abgeordneten. Die Farbe der Punkte symbolisiert die Parteizugehörigkeit der Abgeordneten. Zusätzlich wurden die Namen der Abgeordneten mit 40 und mehr Tweets zum Thema eingeblendet.
Eine Verbindung zwischen zwei Punkten stellt einen Tweet dar, der geretweetet wurde. Dabei entspringt der Pfeil bei der/dem retweetenden Abgeordneten und weist auf die Person, von welcher der originäre Tweet stammt.
Gehen mehrere Pfeile von einem Punkt aus, hat der/die entsprechende Abgeordnete mehrere Tweets anderer Abgeordneter geretweetet.
Weisen mehrere Pfeile auf einen Punkt, so wurde die entsprechende Person mehrfach von anderen Abgeordneten geretweetet.
Zwischen zwei Punkten kann mehr als eine Verbindung bestehen, wenn eine Person mehr als einmal Tweets der jeweils anderen Person geretweetet hat.
Sind Punkte in keiner Weise durch Verbindungslinien miteinander verknüpft, so nehmen die entsprechenden Abgeordneten in ihren Tweets keinen Bezug in Form von Retweets aufeinander.
In der Grafik sind mehrere nicht miteinander verbundene Netzwerkstrukturen zu erkennen. Diese weisen unterschiedliche Größen auf. Es fällt auf, dass Abgeordnete der Parteien Grüne und Die Linke besonders stark in den Netzwerkstrukturen vertreten sind. Für alle Parteien ist festzustellen, dass die Abgeordneten sich zum Großteil parteiintern retweeten und vom Retweeten Abgeordneter anderer Parteien eher absehen. Dabei stechen erneut die Parteien Grüne und Die Linke durch eine etwas stärkere überparteiliche Vernetzung besonders untereinander hervor.
Auch Abgeordnete der CDU nehmen vereinzelt Bezug auf Abgeordnete anderer Parteien. Wobei sowohl bei ihr als auch bei der SPD die verhältnismäßig geringe Präsenz in den Netzwerken auffällt. Bei FDP und AfD ist die Isolation ihrer Netzwerke vom Rest der Netzwerkstrukturen bemerkenswert. Die FDP weist dabei eine verhältnismäßig starke innerparteiliche Verknüpfung auf. Im Gegensatz dazu bildet die AfD vier kleine und voneinander isolierte Netzwerke.
Markant ist zudem, dass die Personen, welche sich am häufigsten zum Thema Gender äußern, fast ausschließlich Frauen sind. Unter den 12 Personen mit mindestens 40 Tweets zum Thema findet sich nur ein männlicher Abgeordneter (Frank Magnitz, AfD).
Zusammenfassend hat die Datenanalyse gezeigt, dass es eine Diskrepanz zwischen der realen Geschlechterverteilung in der Gesellschaft und ihrer Repräsentation durch die Abgeordneten gibt. Dieses Missverhältnis zieht sich quer durch die höchsten deutschen Parlamente.
Die Netzwerkanalyse zeigt, dass der Themenkomplex Gender von den Parteien auf Twitter unterschiedlich stark diskutiert wird. Besonders fällt die intensive Beteiligung von den Grünen und von Die Linke auf. Es sind auch die Fraktionen genau dieser beiden Parteien, welche den größten Frauenanteil aufweisen. Kaum beteiligt sind die CDU/CSU, SPD und AfD. Die FDP zeigt eine gewisse Aktivität, jedoch isoliert von den anderen Parteien.
Um verlässliche Aussagen über die Einstellung der Parteien zum Thema Gender in sozialen Netzwerken treffen zu können, bedarf es weiterer inhaltlicher Analysen, welche die Schwächen einer Sentiment-Analyse ausgleichen.